// 1、用 let 声明的变量，没有变量提升
// console.log(a);// 报错
// let a=1;


//---------
// 2、相同的作用域内 不能重复声明变量
// let b=1;
// let b=2;// 报错
// console.log(b);//报错

//---------
// es5中模拟块级作用域
// var b = 100;
// {
//     var b = 90;
//     console.log("1b:", b);
// }
// console.log("b2:", b);

//---------
// 3、let 有块级作用域
// {
//     let c=123;
//     console.log(c);//123
// }

// console.log(c);//报错  c is not defined


// for(let i=0;i<4;i++){
//     // console.log(i)//0,1,2,3
// }

// console.log(i)//报错 i is not defined

// for(let i=0;i<4;i++){
 
//  setTimeout(function(){
    
//         console.log(i)// 循环 4次，4个值 值是：4 
        
//  },1000)
  
// }


//4、 暂时性死区

// 暂时性死区：在相同的作用域内，
//在let 声明变量，之前使用这个变量，造成暂时性死区

// console.log(d);//报错---死掉。。。
// let d=1;

// console.log(2222)




// const 声明的是一个常量，一旦声明就不能改变 。。π= 3.14 

// const e=3.14;
// e=444;
// console.log(e)

// 如果用 const 声明 一个对象， 能否改变 对象中属性的值？
// const obj={"name":"wangdong"};
// obj.name="wuhaijun";
// console.log(obj);

//基本数据类型 ，引用数据类型的区别
//值            //地址
